In computer programming, an application programming interface (API) comprises a set of routines, protocols, and tools for building software applications. APIs can define a software component in terms of its operations, inputs, outputs, and underlying types. APIs can also define functionalities that are independent of their respective implementations, which allows definitions and implementations to vary without compromising each other.
Typically, APIs often come in the form of a library that includes specifications for routines, data structures, object classes, and variables. In other cases, such as Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) services, an API may simply comprise a specification of remote calls exposed to the API consumers.
The description above is presented as a general overview of related art in this field and should not be construed as an admission that any of the information it contains constitutes prior art against the present patent application.